package org.sction.action.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 方法注解<br/>
 * Action注解 标记一个方法为Action <br/>
 * 与{@linkplain org.sction.action.annotation.Namespace Namespace}配合使用<br/>
 * 与{@linkplain org.sction.action.annotation.Controller Controller}配合使用<br/>
 * 
 * 
 * @author sorc
 * @version 创建时间：2012-2-17 上午9:43:29
 * @see Namespace
 * @see Controller
 * @see Parameter
 * @see ActionParam
 * @see MethodParam
 * @see ReturnType
 * @see Result
 * @see Result.Type
 * 
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@Documented
public @interface Action {
	/**
	 * Action访问名 默认为方法名称
	 * 
	 * @return
	 */
	String value() default "";

	/**
	 * 日志模块名
	 * 
	 * @return
	 */
	String name() default "";
	String permissions() default "";
	// boolean JSON() default false;
	/**
	 * 页面跳转映射
	 * 
	 * @return
	 * @see Result
	 */
	Result[] results() default {};

	/**
	 * 返回类型
	 * 
	 * @return
	 * @see ReturnType
	 */
	ReturnType returnType() default ReturnType.OUTPUT;
}
